National accounts


National accounts
NRX01_raw <- 
  statgl_url("NRX01", lang = language) %>%
  statgl_fetch(
    units          = "L",
    time           = px_top(5),
    "account name" = px_all(),
    .col_code      = TRUE
  ) %>% 
  as_tibble()
  
NRX01 <- 
  NRX01_raw %>% 
  arrange(desc(time)) %>% 
  mutate(
    time = time %>% fct_inorder(),
    `account name` = `account name` %>% str_remove_all("[:digit:]|[:punct:]|\\+") %>% trimws(),
    `account name` = `account name` %>% fct_inorder()
    ) %>% 
  drop_na() %>% 
  spread(time, value)
  
NRX01 %>% 
  select(-units) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = NRX01[["units"]] %>% table()) %>% 
  row_spec(c(8, 19), bold = TRUE)
2021 2020 2019 2018 2017
Current prices, million dkk
Output 33.976 32.953 32.633 31.515 30.949
Taxes less subsidies on products 754 761 769 771 638
Taxes on products 1.024 998 1.010 1.010 857
Subsidies on products 270 238 240 238 220
Imports of goods and services 10.114 9.428 10.225 8.745 8.193
Imports of goods 6.664 6.276 6.903 5.717 5.310
Imports of services 3.450 3.152 3.322 3.028 2.884
Total Resources 44.844 43.143 43.627 41.032 39.780
Intermediate consumption 14.386 13.545 13.412 12.991 12.758
Final consumption expenditure 16.467 15.936 15.760 15.268 14.914
Private consumption expenditure 7.289 7.116 7.005 6.944 6.928
Off Government consumption expenditure 9.178 8.820 8.754 8.325 7.986
Individual consumption expenditure 5.278 5.098 5.158 4.986 4.762
Collective consumption expenditure 3.900 3.722 3.596 3.339 3.224
Gross fixed capital formation 6.782 6.410 6.251 4.195 4.446
Exports of goods and services 7.209 7.251 8.205 8.578 7.662
Exports of goods 5.417 5.697 6.008 6.433 5.574
Exports of services 1.792 1.554 2.197 2.145 2.088
Total use 44.844 43.143 43.627 41.032 39.780


See the table in our Statbank: NRX01

NRX0318_raw <- 
  statgl_url("NRX0318", lang = language) %>% 
  statgl_fetch(
    units     = "L",
    industry  = paste0("0100", LETTERS[1:11]),
    time      = px_top(5),
    .col_code = TRUE
  ) %>% 
  as_tibble()


NRX0318 <- 
  NRX0318_raw %>% 
  arrange(desc(time)) %>% 
  mutate(
    time = time %>% fct_inorder(),
    industry = industry %>% fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(time, value) %>% 
  mutate(industry = industry %>% str_remove("A|B|C|D|E|F|G|H|I|J|K"))



NRX0318 %>% 
  select(-units) %>% 
  rename(" " = 1) %>%  
  statgl_table() %>% 
  pack_rows(index = NRX0318[["units"]] %>% table())
2021 2020 2019 2018 2017
Current prices, million dkk
Public adm. and service 9.635 9.267 9.277 8.875 8.495
Fishery and hunting 4.850 4.801 5.039 4.868 4.860
Construction business 4.190 4.318 3.651 3.368 3.600
Finance and business 3.892 3.566 3.254 3.150 3.170
Transport 3.283 2.978 3.335 3.337 3.142
Trade 2.960 2.931 2.776 2.431 2.740
Industry 1.906 2.021 2.165 2.364 1.697
Post, tele, IT, radio, TV etc. 1.251 1.229 1.262 1.263 1.305
Supply and renovation 993 1.012 903 930 1.039
Hotels and restaurants 699 565 729 722 703
Extraction of raw materials 316 265 242 208 196


See the table in our Statbank: NRX0318

NRX10_raw <- 
  statgl_url("NRX10", lang = language) %>% 
  statgl_fetch(
    units = "K",
    account = c("01", "02", "04"),
    Aar = px_top(5),
    .col_code = TRUE
  ) %>% 
  as_tibble() %>% 
  rename("time" = Aar)

NRX10 <- 
  NRX10_raw %>% 
  arrange(desc(time)) %>% 
  mutate(time = time %>% fct_inorder()) %>% 
  spread(time, value)

NRX10 %>% 
  select(-units) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = NRX10[["units"]] %>% table())
2021 2020 2019 2018 2017
2010-prices, chained values
Annual real growth in percent 1,3 0,2 2,8 0,6 0,1
GDP, million DKK 15.740,6 15.540,1 15.511,0 15.083,8 14.990,4
Per capita, 1.000 DKK 279,3 277,4 277,4 270,4 268,8


See the table in our Statbank: NRX10

NRX13_raw <- 
  statgl_url("NRX13", lang = language) %>% 
  statgl_fetch(
    Aar       = px_top(5),
    Kode      = paste0("VBVT", LETTERS[1:11]),
    .col_code = TRUE
  ) %>% 
  as_tibble() %>% 
    rename("time" = Aar)


NRX13 <-
  NRX13_raw %>% 
  arrange(desc(time)) %>% 
  mutate(
    time = time %>% fct_inorder(),
    Kode = Kode %>% str_remove("A|B|C|D|E|F|G|H|I|J|K") %>% trimws(),
    Kode = Kode %>% fct_reorder(value, .fun = mean, .desc = TRUE)
  ) %>% 
  spread(time, value)

NRX13 %>% 
  rename(" " = 1) %>% 
  statgl_table()
2021 2020 2019 2018 2017
Fishery and hunting 1,75 0,40 0,98 0,16 0,49
Public adm. and service 0,30 -0,68 1,38 0,78 0,74
Construction business -1,72 0,69 1,13 -0,39 2,07
Trade -0,47 -0,01 0,77 0,81 -0,11
Finance and business 0,48 0,34 0,02 -0,28 0,15
Extraction of raw materials -0,07 0,00 0,27 0,05 0,07
Supply and renovation -0,32 0,40 -0,02 -0,20 0,03
Transport 0,38 -1,43 0,09 0,73 -0,13
Hotels and restaurants 0,48 -0,85 -0,27 -0,17 0,09
Post, tele, IT, radio, TV etc. -0,15 0,19 -0,30 -0,29 -0,36
Industry 0,14 0,77 -0,57 0,27 -2,68


See the table in our Statbank: NRX13


Last updated: 17. april 2024
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCnsNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQp9DQoNCnsgIA0KbGFuZ3VhZ2UgIDwtIHBhcmFtcyRsYW5nDQpvcHRpb24gICAgPC0gcGFzdGUwKCI/bGFuZz0iLCBsYW5ndWFnZSwgIiZzZWxlY3QiKQ0KbG9nbyAgICAgIDwtIHBhc3RlMChnZXR3ZCgpLCIvYWRkL2xvZ28uZ2lmIikNCnR4dCAgICAgICA8LSByZWFkX3lhbWwocGFzdGUwKGdldHdkKCksICIvYWRkL3R4dC55bWwiKSwgZmlsZUVuY29kaW5nID0gIklTTy04ODU5LTEiKQ0Kc291cmNlICAgIDwtIHR4dCRzb3VyY2VbbGFuZ3VhZ2VdICU+JSB1bmxpc3QoKQ0KfQ0KDQp4YXJpbmdhbkV4dHJhOjp1c2VfY2xpcGJvYXJkKCkNCg0KYGBgDQoNCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0NCg0KLmFjY29yZGlvbiB7DQogIGJhY2tncm91bmQtY29sb3I6ICM5MTk5MDA7DQogIGNvbG9yOiB3aGl0ZTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBwYWRkaW5nOiAxOHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYm9yZGVyOiBub25lOw0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgdHJhbnNpdGlvbjogMC40czsNCn0NCg0KLmFjdGl2ZSwgLmFjY29yZGlvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmOTcyNDI7DQp9DQoNCi5hY2NvcmRpb246YWZ0ZXIgew0KICBjb250ZW50OiAnXDAwMkInOw0KICBjb2xvcjogIzc3NzsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCn0NCg0KLmFjdGl2ZTphZnRlciB7DQogIGNvbnRlbnQ6ICJcMjIxMiI7DQp9DQoNCi5wYW5lbCB7DQogIHBhZGRpbmc6IDBweCA1cHggMHB4IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7DQogIG1heC1oZWlnaHQ6IDA7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4ycyBlYXNlLW91dDsNCn0NCg0KZGV0YWlscyB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQpkZXRhaWxzID4gc3VtbWFyeSB7DQogIHBhZGRpbmc6IDRweCAxMnB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y5OTsNCiAgYm9yZGVyOiBzb2xpZDsNCiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgY29sb3I6IHdoaXRlOw0KfQ0KDQpkZXRhaWxzW29wZW5dID4gc3VtbWFyeSB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmYWE0MWE7DQp9DQoNCg0KLnRpdGxlIHsNCiAgY29sb3I6ICMxYjU0NjM7DQogIGZvbnQtc2l6ZTogMzZweDsNCn0NCg0KDQoucGVyc29uZXIgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwNDQ1OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMC4xcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQouw7hrb25vbWkgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwN0Y5OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQoudHbDpnJnw6VlbmRlIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICNmYWE0MWE7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLmNvbnRhaW5lciB7DQogIHdpZHRoOiBpbmhlcml0Ow0KfQ0KDQouc2Nyb2xsLTEwMCB7DQogIG1heC1oZWlnaHQ6IDEwMDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCn0NCg0KDQpwcmUgew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCn0NCg0KcHJlW2NsYXNzXSB7DQogIG1heC1oZWlnaHQ6IDMwMHB4Ow0KfQ0KDQpgYGANCg0KPGJyPg0KPGJyPg0KDQo8Y2VudGVyPg0KDQotLS0NCiANCiMgW2ByIHR4dCROUiR0aXRsZVtsYW5ndWFnZV1gXXsudGl0bGV9DQogDQotLS0NCjwvY2VudGVyPg0KDQo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4gYHIgdHh0JE5SJHRpdGxlW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIk5SWDAxIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIE5SWDAxfQ0KDQpOUlgwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIk5SWDAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIHVuaXRzICAgICAgICAgID0gIkwiLA0KICAgIHRpbWUgICAgICAgICAgID0gcHhfdG9wKDUpLA0KICAgICJhY2NvdW50IG5hbWUiID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlICAgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KICANCk5SWDAxIDwtIA0KICBOUlgwMV9yYXcgJT4lIA0KICBhcnJhbmdlKGRlc2ModGltZSkpICU+JSANCiAgbXV0YXRlKA0KICAgIHRpbWUgPSB0aW1lICU+JSBmY3RfaW5vcmRlcigpLA0KICAgIGBhY2NvdW50IG5hbWVgID0gYGFjY291bnQgbmFtZWAgJT4lIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18WzpwdW5jdDpdfFxcKyIpICU+JSB0cmltd3MoKSwNCiAgICBgYWNjb3VudCBuYW1lYCA9IGBhY2NvdW50IG5hbWVgICU+JSBmY3RfaW5vcmRlcigpDQogICAgKSAlPiUgDQogIGRyb3BfbmEoKSAlPiUgDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkNCiAgDQpOUlgwMSAlPiUgDQogIHNlbGVjdCgtdW5pdHMpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBOUlgwMVtbInVuaXRzIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKGMoOCwgMTkpLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJOUlgwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvNDQyOWFkN2YtMzcyZi00MGU0LWExMDMtZWViMzQxYzZiZGI1Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDI6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiTlJYMDMxOCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIE5SWDAzMTh9DQoNCk5SWDAzMThfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJOUlgwMzE4IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0cyAgICAgPSAiTCIsDQogICAgaW5kdXN0cnkgID0gcGFzdGUwKCIwMTAwIiwgTEVUVEVSU1sxOjExXSksDQogICAgdGltZSAgICAgID0gcHhfdG9wKDUpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KTlJYMDMxOCA8LSANCiAgTlJYMDMxOF9yYXcgJT4lIA0KICBhcnJhbmdlKGRlc2ModGltZSkpICU+JSANCiAgbXV0YXRlKA0KICAgIHRpbWUgPSB0aW1lICU+JSBmY3RfaW5vcmRlcigpLA0KICAgIGluZHVzdHJ5ID0gaW5kdXN0cnkgJT4lIGZjdF9yZW9yZGVyKHZhbHVlLCAuZnVuID0gc3VtLCAuZGVzYyA9IFRSVUUpDQogICAgKSAlPiUgDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkgJT4lIA0KICBtdXRhdGUoaW5kdXN0cnkgPSBpbmR1c3RyeSAlPiUgc3RyX3JlbW92ZSgiQXxCfEN8RHxFfEZ8R3xIfEl8SnxLIikpDQoNCg0KDQpOUlgwMzE4ICU+JSANCiAgc2VsZWN0KC11bml0cykgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lICANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBOUlgwMzE4W1sidW5pdHMiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiTlJYMDMxOCIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOTA3MTg4MzYtYjFjYy00ZWFkLWFkNmEtYTg2OGNiMDdkN2UzIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMzogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJOUlgxMCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIE5SWDEwfQ0KDQpOUlgxMF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIk5SWDEwIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0cyA9ICJLIiwNCiAgICBhY2NvdW50ID0gYygiMDEiLCAiMDIiLCAiMDQiKSwNCiAgICBBYXIgPSBweF90b3AoNSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkgJT4lIA0KICByZW5hbWUoInRpbWUiID0gQWFyKQ0KDQpOUlgxMCA8LSANCiAgTlJYMTBfcmF3ICU+JSANCiAgYXJyYW5nZShkZXNjKHRpbWUpKSAlPiUgDQogIG11dGF0ZSh0aW1lID0gdGltZSAlPiUgZmN0X2lub3JkZXIoKSkgJT4lIA0KICBzcHJlYWQodGltZSwgdmFsdWUpDQoNCk5SWDEwICU+JSANCiAgc2VsZWN0KC11bml0cykgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE5SWDEwW1sidW5pdHMiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiTlJYMTAiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzU0NTMzNDU0LTYzOTEtNGNjMC05MGExLWU1MTg0NzZmNTUzMSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiTlJYMTMiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBOUlgxM30NCg0KTlJYMTNfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJOUlgxMyIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAgQWFyICAgICAgID0gcHhfdG9wKDUpLA0KICAgIEtvZGUgICAgICA9IHBhc3RlMCgiVkJWVCIsIExFVFRFUlNbMToxMV0pLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpICU+JSANCiAgICByZW5hbWUoInRpbWUiID0gQWFyKQ0KDQoNCk5SWDEzIDwtDQogIE5SWDEzX3JhdyAlPiUgDQogIGFycmFuZ2UoZGVzYyh0aW1lKSkgJT4lIA0KICBtdXRhdGUoDQogICAgdGltZSA9IHRpbWUgJT4lIGZjdF9pbm9yZGVyKCksDQogICAgS29kZSA9IEtvZGUgJT4lIHN0cl9yZW1vdmUoIkF8QnxDfER8RXxGfEd8SHxJfEp8SyIpICU+JSB0cmltd3MoKSwNCiAgICBLb2RlID0gS29kZSAlPiUgZmN0X3Jlb3JkZXIodmFsdWUsIC5mdW4gPSBtZWFuLCAuZGVzYyA9IFRSVUUpDQogICkgJT4lIA0KICBzcHJlYWQodGltZSwgdmFsdWUpDQoNCk5SWDEzICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk5SWDEzIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8zYzA1Nzc0ZS1kNzM5LTQwZWMtOGQyMS02ZWRmZTljMjhmYTIiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCjxzY3JpcHQ+DQp2YXIgYWNjID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWNjb3JkaW9uIik7DQp2YXIgaTsNCg0KZm9yIChpID0gMDsgaSA8IGFjYy5sZW5ndGg7IGkrKykgew0KICBhY2NbaV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpIHsNCiAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIpOw0KICAgIHZhciBwYW5lbCA9IHRoaXMubmV4dEVsZW1lbnRTaWJsaW5nOw0KICAgIGlmIChwYW5lbC5zdHlsZS5tYXhIZWlnaHQpIHsNCiAgICAgIHBhbmVsLnN0eWxlLm1heEhlaWdodCA9IG51bGw7DQogICAgfSBlbHNlIHsNCiAgICAgIHBhbmVsLnN0eWxlLm1heEhlaWdodCA9IHBhbmVsLnNjcm9sbEhlaWdodCArICJweCI7DQogICAgfSANCiAgfSk7DQp9DQo8L3NjcmlwdD4NCg0KDQo=